package exception;

import java.io.IOException;

public class Demo05Throwable {

	/**
	 * Throwable类中定义了3个异常处理的方法
	 *    String getMessage() 返回此 throwable 的简短描述。
	 *    String toString() 返回此 throwable 的详细消息字符串。
	 *    void printStackTrace()  JVM打印异常对象,默认此方法,打印的异常信息是最全面的
	 */
	public static void main(String[] args) {
		try {
			//可能产生异常的代码
			readFile("d:\\a.tx");
			System.out.println("资源释放");
		} catch (IOException e) {
			System.out.println(e.getMessage());		//打印:文件的后缀名不对
			System.out.println(e); 		//调用toString方法 打印: java.io.IOException: 文件的后缀名不对
			e.printStackTrace();		//jvm默认就用这种方式处理异常
			/* 打印出
			java.io.IOException: 文件的后缀名不对
				at exception.Demo5_Throwable.readFile(Demo5_Throwable.java:36)
				at exception.Demo5_Throwable.main(Demo5_Throwable.java:16)
			*/
		}
	}

	public static void readFile(String fileName) throws IOException {
		if(!fileName.endsWith(".txt")) throw new IOException("文件的后缀名不对");
		System.out.println("路径没有问题,读取文件");
	}

}
